package com.pe.pgn.clubpgn.domain;

import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Type;
import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name = "clpd_rango_promocion")
public class ClpdRangoPromocion extends CamposAuditoria{

	private static final long serialVersionUID = -6331343148236981188L;
	private Long id;
	private ClpbPromocionBono clpbPromocionBono = new ClpbPromocionBono();
	private BigDecimal vaConsumoInicio;
	private BigDecimal vaConsumoFin;
	private Long vaCantidad;
	private boolean stRangoPromocion;
	private boolean stEsRangoFinal;

	@Id
    @Column(name="id")
    @SequenceGenerator(name="seqrangopromo", sequenceName="seq_rango_promo")
    @GeneratedValue(generator="seqrangopromo")	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(targetEntity = ClpbPromocionBono.class)
    @JoinColumn(name="co_promocion_bono", nullable = false)
	public ClpbPromocionBono getClpbPromocionBono() {
		return clpbPromocionBono;
	}

	public void setClpbPromocionBono(ClpbPromocionBono clpbPromocionBono) {
		this.clpbPromocionBono = clpbPromocionBono;
	}

	@Column(name = "va_consumo_inicio")
	public BigDecimal getVaConsumoInicio() {
		return vaConsumoInicio;
	}

	public void setVaConsumoInicio(BigDecimal vaConsumoInicio) {
		this.vaConsumoInicio = vaConsumoInicio;
	}

	@Column(name = "va_consumo_fin")
	public BigDecimal getVaConsumoFin() {
		return vaConsumoFin;
	}

	public void setVaConsumoFin(BigDecimal vaConsumoFin) {
		this.vaConsumoFin = vaConsumoFin;
	}

	@Column(name = "va_cantidad")
	public Long getVaCantidad() {
		return vaCantidad;
	}

	public void setVaCantidad(Long vaCantidad) {
		this.vaCantidad = vaCantidad;
	}

	@Column(name = "st_rango_promocion", nullable = false)
	@Type(type = "yes_no")
	public boolean isStRangoPromocion() {
		return stRangoPromocion;
	}

	public void setStRangoPromocion(boolean stRangoPromocion) {
		this.stRangoPromocion = stRangoPromocion;
	}

	@Column(name = "st_es_rango_final", nullable = false)
	@Type(type = "yes_no")
	public boolean isStEsRangoFinal() {
		return stEsRangoFinal;
	}

	public void setStEsRangoFinal(boolean stEsRangoFinal) {
		this.stEsRangoFinal = stEsRangoFinal;
	}

	@Column(name = "co_usuario_creador", updatable = false, nullable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false, nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}
	
	@Override
	public boolean equals(Object o) {
		return false;
	}

	@Override
	public int hashCode() {
		return 0;
	}

	@Override
	public String toString() {
		return null;
	}
}
